//package com.openecommerce.service.impl;
//
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.List;
//
//import javax.annotation.Resource;
//
//import com.openecommerce.domain.Category;
//import com.openecommerce.domain.CategoryAssignedProduct;
//import com.openecommerce.domain.CategoryCreateEntity;
//import com.openecommerce.domain.CategoryNoChildrenEntity;
//import com.openecommerce.domain.CategoryTree;
//import com.openecommerce.domain.basic.Page;
//import com.openecommerce.persistence.CategoryAssignedProductMapper;
//import com.openecommerce.persistence.CategoryMapper;
//import com.openecommerce.service.CategoryService;
//
//public class CategoryServiceImpl implements CategoryService {
//	
//	@Resource
//	private CategoryMapper categoryMapper;
//	@Resource
//	private CategoryAssignedProductMapper categoryAssignedProductMapper;
//	
//	@Override
//	public CategoryTree tree(Integer parentId) {
//		 CategoryTree categoryTree = new CategoryTree();
//		 Category  category = categoryMapper.selectByPrimaryKey(parentId);
//		 categoryTree.setCategoryId(category.getCategoryId());
//		 categoryTree.setLevel(category.getLevel());
//		 categoryTree.setName(category.getName());
//		 categoryTree.setParentId(category.getParentId());
//		 categoryTree.setPosition(category.getPosition());
//		 List<Category> list = categoryMapper.selectByParentId(parentId);
//		 categoryTree.setChildren(list);
//		return categoryTree;
//	}
//
//	@Override
//	public List<CategoryNoChildrenEntity> level(Integer parentId) {
//		List<CategoryNoChildrenEntity> resultList = new ArrayList<CategoryNoChildrenEntity>();
//		List<Category> list = categoryMapper.selectLeafByParentId(parentId);
//		for(Category item : list){
//			CategoryNoChildrenEntity leaf = new CategoryNoChildrenEntity();
//			leaf.setCategoryId(item.getCategoryId());
//			leaf.setIsActive(item.getIsActive());
//			leaf.setLevel(item.getLevel());
//			leaf.setName(item.getName());
//			leaf.setParentId(item.getParentId());
//			leaf.setPosition(item.getPosition());
//			resultList.add(leaf);
//		}
//		return resultList;
//	}
//
//	@Override
//	public Category get(Integer categoryId) {
//		return categoryMapper.selectByPrimaryKey(categoryId);
//	}
//
//	@Override
//	public int create(Integer parentId, CategoryCreateEntity data) {
//		Category category = new Category();
//		data.fillChildObject(category);
//		category.setParentId(parentId);
//		category.setCreatedAt(new Date());
//		int result = categoryMapper.insertSelective(category);
//		return result ;
//	}
//
//	@Override
//	public boolean update(Integer categoryId, CategoryCreateEntity data) {
//		Category category = new Category();
//		data.fillChildObject(category);
//		category.setCategoryId(categoryId);
//		category.setUpdatedAt(new Date());
//		int result = categoryMapper.updateByPrimaryKeySelective(category);
//		return result ==1 ? true:false ;
//	}
//
//	@Override
//	public boolean move(Integer categoryId, Integer parentId, Integer afterId) {
//		Category category = new Category();
//		Category beforeCategory = categoryMapper.selectByPrimaryKey(afterId);
//		category.setCategoryId(categoryId);
//		category.setParentId(parentId);
//		category.setUpdatedAt(new Date());
//		category.setPosition(beforeCategory.getPosition() + 1);
//		int result = categoryMapper.updateByPrimaryKeySelective(category);
//		return result ==1 ? true:false ;
//	}
//
//	@Override
//	public boolean delelte(Integer categoryId) {
//		int result = categoryMapper.deleteByPrimaryKey(categoryId);
//		return result ==1 ? true:false ;
//	}
//
//	@Override
//	public Page<CategoryAssignedProduct> assignedProducts(Integer categoryId,int currentPage,int onePageCount) {
//		Page<CategoryAssignedProduct> productPage = new Page<CategoryAssignedProduct>();
//		int countRecord = categoryAssignedProductMapper.selectCountByCategoryId(categoryId);
//		productPage.setCountRecord(countRecord);
//		productPage.setCurrentPage(currentPage);
//		productPage.setOnePageCount(onePageCount);
//		productPage.calculate();
//		List<CategoryAssignedProduct> list = categoryAssignedProductMapper.selectByCategoryId(categoryId, productPage.getStartIndex(),productPage.getOnePageCount());
//		productPage.setList(list);
//		return productPage;
//	}
//
//	@Override
//	public boolean assignProduct(Integer categoryId, Long productId,
//			Integer position) {
//		CategoryAssignedProduct categoryAssignedProduct = new CategoryAssignedProduct();
//		categoryAssignedProduct.setCategoryId(categoryId);
//		categoryAssignedProduct.setProductId(productId);
//		categoryAssignedProduct.setPosition(position);
//		int result = categoryAssignedProductMapper.insertSelective(categoryAssignedProduct);
//		return result ==1 ? true:false ;
//	}
//
//	@Override
//	public boolean updateProduct(Integer categoryId, Long productId,
//			Integer position, Integer indentifierType) {
//		CategoryAssignedProduct categoryAssignedProduct = new CategoryAssignedProduct();
//		categoryAssignedProduct.setCategoryId(categoryId);
//		categoryAssignedProduct.setProductId(productId);
//		categoryAssignedProduct.setPosition(position);
//		int result = categoryAssignedProductMapper.updateByCategoryIdProductIdSelective(categoryAssignedProduct);
//		return result ==1 ? true:false ;
//	}
//
//	@Override
//	public boolean removeProduct(Integer categoryId, Long productId,
//			Integer indentifierType) {
//		CategoryAssignedProduct categoryAssignedProduct = new CategoryAssignedProduct();
//		categoryAssignedProduct.setCategoryId(categoryId);
//		categoryAssignedProduct.setProductId(productId);
//		int result = categoryAssignedProductMapper.updateByCategoryIdProductIdSelective(categoryAssignedProduct);
//		return result ==1 ? true:false ;
//	}
//
//}
